
move.o:     file format elf32-littlearm


Disassembly of section .text:

00000000 <main>:
#include <stdio.h>

int main()
{
   0:	e92d4800 	push	{fp, lr}
   4:	e28db004 	add	fp, sp, #4
   8:	e24dd030 	sub	sp, sp, #48	; 0x30
	//				0   1   2   3  4   5   6
	int data[10] = {10, 15, 20, 25, 30, 35, 40};
   c:	e24b3034 	sub	r3, fp, #52	; 0x34  r3 = fp - 52
  10:	e3a02000 	mov	r2, #0      ; r2 = 0
  14:	e5832000 	str	r2, [r3]    ; [fp-52] = 0
  18:	e2833004 	add	r3, r3, #4  ; r3 = [fp - 52 + 4] = [fp -48]
  1c:	e3a02000 	mov	r2, #0      ; r2 = 0
  20:	e5832000 	str	r2, [r3]    ; [fp-48] = 0
  24:	e2833004 	add	r3, r3, #4  ; [fp-44]
  28:	e3a02000 	mov	r2, #0
  2c:	e5832000 	str	r2, [r3]    ; [fp-44] 
  30:	e2833004 	add	r3, r3, #4
  34:	e3a02000 	mov	r2, #0
  38:	e5832000 	str	r2, [r3] ; [fp-40]
  3c:	e2833004 	add	r3, r3, #4
  40:	e3a02000 	mov	r2, #0
  44:	e5832000 	str	r2, [r3] ; [fp-36]
  48:	e2833004 	add	r3, r3, #4
  4c:	e3a02000 	mov	r2, #0
  50:	e5832000 	str	r2, [r3]
  54:	e2833004 	add	r3, r3, #4
  58:	e3a02000 	mov	r2, #0
  5c:	e5832000 	str	r2, [r3]
  60:	e2833004 	add	r3, r3, #4
  64:	e3a02000 	mov	r2, #0
  68:	e5832000 	str	r2, [r3]
  6c:	e2833004 	add	r3, r3, #4
  70:	e3a02000 	mov	r2, #0
  74:	e5832000 	str	r2, [r3]
  78:	e2833004 	add	r3, r3, #4
  7c:	e3a02000 	mov	r2, #0
  80:	e5832000 	str	r2, [r3]
  84:	e2833004 	add	r3, r3, #4
  88:	e3a0300a 	mov	r3, #10
  8c:	e50b3034 	str	r3, [fp, #-52]	; 0xffffffcc
  90:	e3a0300f 	mov	r3, #15
  94:	e50b3030 	str	r3, [fp, #-48]	; 0xffffffd0
  98:	e3a03014 	mov	r3, #20
  9c:	e50b302c 	str	r3, [fp, #-44]	; 0xffffffd4
  a0:	e3a03019 	mov	r3, #25
  a4:	e50b3028 	str	r3, [fp, #-40]	; 0xffffffd8
  a8:	e3a0301e 	mov	r3, #30
  ac:	e50b3024 	str	r3, [fp, #-36]	; 0xffffffdc
  b0:	e3a03023 	mov	r3, #35	; 0x23
  b4:	e50b3020 	str	r3, [fp, #-32]	; 0xffffffe0
  b8:	e3a03028 	mov	r3, #40	; 0x28
  bc:	e50b301c 	str	r3, [fp, #-28]	; 0xffffffe4
	int *src;
	int *des;

	
	src = data;	// 10
  c0:	e24b3034 	sub	r3, fp, #52	; 0x34
  c4:	e50b3008 	str	r3, [fp, #-8] ; src
	
	src = src + 3;
  c8:	e51b3008 	ldr	r3, [fp, #-8] ; src
  cc:	e283300c 	add	r3, r3, #12   ; src + 12
  d0:	e50b3008 	str	r3, [fp, #-8] ; src
	printf("%d\n", *src);			// 25
  d4:	e51b3008 	ldr	r3, [fp, #-8] ; src
  d8:	e5933000 	ldr	r3, [r3]      ; *src
  dc:	e1a01003 	mov	r1, r3        ; r1 = *src
  e0:	e59f011c 	ldr	r0, [pc, #284]	; 204 <main+0x204>
  e4:	ebfffffe 	bl	0 <printf>
	printf("%d\n", *(src + 3));	// 40 没有移位
  e8:	e51b3008 	ldr	r3, [fp, #-8] ; src
  ec:	e283300c 	add	r3, r3, #12   ; src + 12
  f0:	e5933000 	ldr	r3, [r3]      ; *src
  f4:	e1a01003 	mov	r1, r3        ; r1 = *src
  f8:	e59f0104 	ldr	r0, [pc, #260]	; 204 <main+0x204>
  fc:	ebfffffe 	bl	0 <printf>
	printf("%d\n", src[3]);		// 40 没有移位
 100:	e51b3008 	ldr	r3, [fp, #-8] ; src
 104:	e283300c 	add	r3, r3, #12   ; src+12
 108:	e5933000 	ldr	r3, [r3]      ; *src
 10c:	e1a01003 	mov	r1, r3        ; r1 = *src
 110:	e59f00ec 	ldr	r0, [pc, #236]	; 204 <main+0x204>
 114:	ebfffffe 	bl	0 <printf>

	src = data;
 118:	e24b3034 	sub	r3, fp, #52	; 0x34  data
 11c:	e50b3008 	str	r3, [fp, #-8] ; src
	printf("%d\n", *(src + 3));	// 25 没有移位
 120:	e51b3008 	ldr	r3, [fp, #-8] ; src
 124:	e283300c 	add	r3, r3, #12   ; src+12
 128:	e5933000 	ldr	r3, [r3]      ; *src
 12c:	e1a01003 	mov	r1, r3        ; r1 = *src
 130:	e59f00cc 	ldr	r0, [pc, #204]	; 204 <main+0x204>
 134:	ebfffffe 	bl	0 <printf>
	printf("%d\n", src[3]);		// 25 没有移位
 138:	e51b3008 	ldr	r3, [fp, #-8] ; src
 13c:	e283300c 	add	r3, r3, #12   ; src+12
 140:	e5933000 	ldr	r3, [r3]      ; *src
 144:	e1a01003 	mov	r1, r3
 148:	e59f00b4 	ldr	r0, [pc, #180]	; 204 <main+0x204>
 14c:	ebfffffe 	bl	0 <printf>
	
	src++;	// 移到下一位
 150:	e51b3008 	ldr	r3, [fp, #-8] ; src
 154:	e2833004 	add	r3, r3, #4    ; src+4
 158:	e50b3008 	str	r3, [fp, #-8]
	printf("%d\n", *src);		// 15
 15c:	e51b3008 	ldr	r3, [fp, #-8] ; src
 160:	e5933000 	ldr	r3, [r3]      ; *src
 164:	e1a01003 	mov	r1, r3
 168:	e59f0094 	ldr	r0, [pc, #148]	; 204 <main+0x204>
 16c:	ebfffffe 	bl	0 <printf>

	src = data;
 170:	e24b3034 	sub	r3, fp, #52	; 0x34  data
 174:	e50b3008 	str	r3, [fp, #-8] ; src
	des = src;
 178:	e51b3008 	ldr	r3, [fp, #-8] ; src
 17c:	e50b300c 	str	r3, [fp, #-12]        ; des
	printf("%d : des = %d\n", __LINE__, *des);	// 10
 180:	e51b300c 	ldr	r3, [fp, #-12]       ; des
 184:	e5933000 	ldr	r3, [r3]             ; *des
 188:	e1a02003 	mov	r2, r3               ; r2 = *des
 18c:	e3a0101b 	mov	r1, #27
 190:	e59f0070 	ldr	r0, [pc, #112]	; 208 <main+0x208>
 194:	ebfffffe 	bl	0 <printf>
	des++;
 198:	e51b300c 	ldr	r3, [fp, #-12] ; des
 19c:	e2833004 	add	r3, r3, #4     ; des+4
 1a0:	e50b300c 	str	r3, [fp, #-12] ; des
	printf("%d : des = %d\n", __LINE__, *des);	// 15
 1a4:	e51b300c 	ldr	r3, [fp, #-12]       ; des
 1a8:	e5933000 	ldr	r3, [r3]             ; *des
 1ac:	e1a02003 	mov	r2, r3               ; r2 = *des
 1b0:	e3a0101d 	mov	r1, #29
 1b4:	e59f004c 	ldr	r0, [pc, #76]	; 208 <main+0x208>
 1b8:	ebfffffe 	bl	0 <printf>
	printf("%d : des = %d\n", __LINE__, *++des);	// 20
 1bc:	e51b300c 	ldr	r3, [fp, #-12]         ; des
 1c0:	e2833004 	add	r3, r3, #4             ; des+4
 1c4:	e50b300c 	str	r3, [fp, #-12]         ; des
 1c8:	e51b300c 	ldr	r3, [fp, #-12]         ; des
 1cc:	e5933000 	ldr	r3, [r3]               ; *des
 1d0:	e1a02003 	mov	r2, r3
 1d4:	e3a0101e 	mov	r1, #30
 1d8:	e59f0028 	ldr	r0, [pc, #40]	; 208 <main+0x208>
 1dc:	ebfffffe 	bl	0 <printf>
	printf("%d : src = %d\n", __LINE__, *src);	// 10 src被des操作,但src本身没有移动,仍指向data首地址.
 1e0:	e51b3008 	ldr	r3, [fp, #-8]        ; src
 1e4:	e5933000 	ldr	r3, [r3]             ; *src
 1e8:	e1a02003 	mov	r2, r3               ; r2 = *src
 1ec:	e3a0101f 	mov	r1, #31              ; r1 = 31
 1f0:	e59f0014 	ldr	r0, [pc, #20]	; 20c <main+0x20c>
 1f4:	ebfffffe 	bl	0 <printf>
}
 1f8:	e1a00003 	mov	r0, r3
 1fc:	e24bd004 	sub	sp, fp, #4
 200:	e8bd8800 	pop	{fp, pc}
 204:	00000000 	.word	0x00000000
 208:	00000004 	.word	0x00000004
 20c:	00000014 	.word	0x00000014
